package Dominio;

import java.util.ArrayList;

public class RequerimientoAcademico {
    private Asignatura asignaturaDependiente;
    private ArrayList<Asignatura> asignaturasRequeridas;
    private int clavePrograma;

    public RequerimientoAcademico(Asignatura asignaturaDependiente, ArrayList<Asignatura> asignaturasRequeridas, int clavePrograma) {
        this.asignaturaDependiente = asignaturaDependiente;
        this.asignaturasRequeridas = asignaturasRequeridas;
        this.clavePrograma = clavePrograma;
    }

    public RequerimientoAcademico(Asignatura asignaturaDependiente,Asignatura asignaturaRequerida, int clavePrograma) {
        this.asignaturaDependiente = asignaturaDependiente;
        this.clavePrograma = clavePrograma;
        this.asignaturasRequeridas = new ArrayList<Asignatura>();
        this.asignaturasRequeridas.add(asignaturaRequerida);
    }

    public Asignatura getAsignaturaDependiente() {
        return asignaturaDependiente;
    }

    public void setAsignaturaDependiente(Asignatura asignaturaDependiente) {
        this.asignaturaDependiente = asignaturaDependiente;
    }

    public ArrayList<Asignatura> getAsignaturasRequeridas() {
        return asignaturasRequeridas;
    }

    public void setAsignaturasRequeridas(ArrayList<Asignatura> asignaturasRequeridas) {
        this.asignaturasRequeridas = asignaturasRequeridas;
    }

    public int getClavePrograma() {
        return clavePrograma;
    }

    public void setClavePrograma(int clavePrograma) {
        this.clavePrograma = clavePrograma;
    }

    public boolean agregaAsignaturaRequerida(Asignatura asignatura){
        if(!existeAsignatura(asignatura)){
            this.asignaturasRequeridas.add(asignatura);
            return true;
        }
        return false;
    }
    
    protected boolean existeAsignatura(Asignatura asignatura){
        boolean existe = false;
        for(int i=0;i<this.asignaturasRequeridas.size();i++){
            if(this.asignaturasRequeridas.get(i).getClave_asignatura() == asignatura.getClave_asignatura() || 
                    this.asignaturasRequeridas.get(i).getNombre().equalsIgnoreCase(asignatura.getNombre())){
                existe = true;
                break;
            }
        }
        return existe;
    }
}
